import { defineStore } from 'pinia'
import { ref } from 'vue'
import { loginApi } from '@/api/login'
// 创建pinia仓库
// 注意：仓库名user必须是唯一的，函数名尽量保持use+仓库名+store
export const useUserStore = defineStore('user', () => {
    // 用户数据
    const userInfo = ref({})
    // 设置用户数据
    const setUserInfo = (payload) => {
        userInfo.value = payload
    }

    // 登录状态
    const token = ref(null)
    // 设置token
    const setToken = (payload) => {
        token.value = payload
    }
    // 登录
    const login = async (formData) => {
        // 登录
        const data = await loginApi(formData)
        // 设置token
        setToken(data.token)
        // 设置用户数据
        setUserInfo(data)
    }

    // 退出登录
    const logout = () => {
        setToken(null)
        setUserInfo({})
    }


    return { userInfo, token, login, logout }
}, {
    // 持久化存储
    persist: {
        storage: localStorage,
        pick: ['token', 'userInfo'],
    }
})